<?php


namespace app\job;

use app\common\logic\UserExtend;
use think\Db;
use think\queue\Job;

class UpdateCity
{
    public function fire(Job $job, $data){

        //....这里执行具体的任务

        if ($job->attempts() > 3) {
            $job->delete();
            //通过这个方法可以检查这个任务已经重试了几次了
        }


        $city = ipToCity($data['ip']);

        if ($city){
            Db::name('user_extend')->where('user_id',$data['id'])->update(['city'=>$city]);
        }

//
//        //如果任务执行成功后 记得删除任务，不然这个任务会重复执行，直到达到最大重试次数后失败后，执行failed方法
        $job->delete();


//        // 也可以重新发布这个任务
//        $job->release($delay); //$delay为延迟时间

    }

    public function failed($data){

        // ...任务达到最大重试次数后，失败了

    }
}